Enterprise software systems are typically sophisticated, large-scale systems that support many, e.g., hundreds or thousands, of concurrent users. Examples of enterprise software systems include financial planning systems, order management systems, inventory management systems, sales force management systems, business intelligence tools, enterprise reporting tools, project and resource management systems, and other enterprise software systems.
Many enterprise performance management and business planning applications require a large population of users to enter data that the software then accumulates into higher level areas of responsibility in the organization. The system may store the data into complex multi-dimensional data structures referred to as “data cubes.” The system may perform mathematical calculations on the data, combining data submitted by one user with data submitted by another. Using the results of these calculations, the system may generate reports.
Underneath this planning process, the software system maintains a model that represents the enterprise. The model may include a number of hierarchically arranged nodes representing various organizational units within the enterprise, such as business units or departments. Prior to the planning and performance management process, typically, analysts, such as the chief financial officer, senior financial analysts, or product and sales analysts, construct the model so as to reflect the organization of the enterprise prior to data entry by the various users. The analysts build the model by importing information from a variety of different enterprise systems and relating imported data items. Frequently, the analysts must construct and manipulate the model in seemingly unintuitive ways so as to achieve the desired result. As one example, this effort may require the analysts to specify the various dimensions of the multi-dimensional data, which in turn, requires them to understand complicated interactions between the nodes of the model. As another example, in order to control access during the planning process, the analysts are often required to define an access list for each node of the model, thereby requiring them to understand possibly thousands of nodes arranged within the model. In large enterprises, this model building phase becomes cumbersome as the analysts may be required to perform these unintuitive procedures, such as defining access lists, for hundreds, if not thousands of users.